package entity

import (
	"group-card/common/request"
	"time"
)

//region TODO:卡片绑定  Author:LiuYanLin Date:2023/03/30 周四 16:34

type CardBinding struct {
	Id            int64     `xorm:"not null pk autoincr comment('主键ID') BIGINT(20)" json:"id"`                             // id
	CardNumber    int64     `xorm:"not null default 0 BIGINT(20) comment('卡片序列号')"    json:"card_number"`                  // 卡片序列号
	CustomerId    int64     `xorm:"not null default 0 BIGINT(20) comment('集团客户id')"    json:"customer_id"`                 // 集团客户id
	UserId        int64     `xorm:"not null default 0 BIGINT(20) comment('绑定会员id')"        json:"user_id"`                 // 绑定会员id
	BindingTime   time.Time `xorm:"default null timestamp comment('绑定时间')"   json:"binding_time"`                          // 绑定时间
	FaceValue     int64     `xorm:"not null default 0 BIGINT(20) comment('面额(kg)')"     json:"face_value"`                 // 面额(kg)
	Balance       float64   `xorm:"not null default 0.00 decimal(9,2) comment('余额(kg)')"        json:"balance"`            // 余额(kg)
	Status        int64     `xorm:"not null default 10 BIGINT(20) comment('状态 10未绑定 20已绑定 30取消绑定')"         json:"status"` // 状态 10未绑定 20已绑定 30取消绑定
	ServiceNumber string    `xorm:"not null default '' VARCHAR(255) comment('银行消费券号')" json:"service_number"`              // 银行消费券号
	CreateAt      time.Time `xorm:"not null created comment('创建时间')"   json:"create_at"`                                   // 创建时间
	UpdateAt      time.Time `xorm:"not null updated comment('更新时间')"   json:"update_at"`                                   // 更新时间
	DeleteAt      time.Time `xorm:"not null deleted comment('删除时间')"   json:"delete_at"`                                   // 删除时间
	OrgId         int64     `xorm:"not null default 0 BIGINT(20) comment('组织ID')"          json:"org_id"`
	Org1          int64     `xorm:"not null default 0 BIGINT(20) comment('一级组织ID')"          json:"org1"`
	Org2          int64     `xorm:"not null default 0 BIGINT(20) comment('二级组织ID')"          json:"org2"`
	Org3          int64     `xorm:"not null default 0 BIGINT(20) comment('三级组织ID')"          json:"org3"`
	Org4          int64     `xorm:"not null default 0 BIGINT(20) comment('四级组织ID')"          json:"org4"`
	Org5          int64     `xorm:"not null default 0 BIGINT(20) comment('五级组织ID')"          json:"org5"`
}

func (*CardBinding) TableName() string {
	return "card_binding"
}

//endregion

type CardBindingReq struct {
	Id              int64     `json:"id"`                                  // id
	CardNumber      int64     `json:"card_number"`                         // 卡片序列号
	CustomerId      int64     `json:"customer_id"`                         // 集团客户id
	UserId          int64     `json:"user_id"`                             // 绑定会员id
	BindingTime     time.Time `json:"binding_time"`                        // 绑定时间
	FaceValue       int64     `json:"face_value"`                          // 面额(kg)
	Balance         float64   `json:"balance"`                             // 余额(kg)
	Status          int64     `json:"status"`                              // 状态 10未绑定 20已绑定 30取消绑定
	ServiceNumber   string    `json:"service_number"`                      // 银行消费券号
	CreateAt        time.Time `xorm:"not null created"   json:"create_at"` // 创建时间
	UpdateAt        time.Time `xorm:"not null updated"   json:"update_at"` // 更新时间
	DeleteAt        time.Time `xorm:"not null deleted"   json:"delete_at"` // 删除时间
	request.BaseReq `xorm:"-" json:"-"`
}

type CardBindingResp struct {
	Id            int64     `json:"id"`                                  // id
	CardNumber    int64     `json:"card_number"`                         // 卡片序列号
	CustomerId    int64     `json:"customer_id"`                         // 集团客户id
	UserId        int64     `json:"user_id"`                             // 绑定会员id
	BindingTime   time.Time `json:"binding_time"`                        // 绑定时间
	FaceValue     int64     `json:"face_value"`                          // 面额(kg)
	Balance       float64   `json:"balance"`                             // 余额(kg)
	Status        int64     `json:"status"`                              // 状态 10未绑定 20已绑定 30取消绑定
	ServiceNumber string    `json:"service_number"`                      // 银行消费券号
	CreateAt      time.Time `xorm:"not null created"   json:"create_at"` // 创建时间
	UpdateAt      time.Time `xorm:"not null updated"   json:"update_at"` // 更新时间
	DeleteAt      time.Time `xorm:"not null deleted"   json:"delete_at"` // 删除时间
}
